/**
 * Created by zhangsong on 2019-01-17.
 */

const Sequelize = require('sequelize');
const config = require('../config');

const { mysql } = config;

// 数据库连接对象
const db = new Sequelize({
  database: mysql.name,
  username: mysql.username,
  password: mysql.password,
  define: {
    freezeTableName: true, // 禁止修改表名,即不自动将表名变为复数
    paranoid: true, // 不真正的从数据库删除数据
    underscored: true, // 使用下划线的方法命名字段
    charset: 'utf8mb4',
  },
  dialect: mysql.dialect, // 数据库方言
  host: mysql.host,
  pool: { // 连接池参数
    acquire: 30000,
    idle: 10000,
    max: 15,
    min: 0,
  },
  port: mysql.port,
  timezone: '+08:00', // 东八区
  // 请参考 Querying - 查询 操作符 章节
  dialectOptions: { // 应用全局的 sequelize 设置
    // ssl: { // ssl 证书
    //   ca: config.mysql.ca,
    // },
  },
  logging: false,
});

module.exports = {
  db,
};
